package com.tsingteng.cosfun.ui.cosfun.imodel;

import com.tsingteng.cosfun.bean.AttentRecommendbean;
import com.tsingteng.cosfun.bean.BaseBackBean;
import com.tsingteng.cosfun.bean.BaseDataBean;
import com.tsingteng.cosfun.bean.BlindResp;
import com.tsingteng.cosfun.bean.CommBackBean;
import com.tsingteng.cosfun.bean.FollowBean;
import com.tsingteng.cosfun.bean.FoundAtBean;
import com.tsingteng.cosfun.bean.HomeBean;
import com.tsingteng.cosfun.bean.JoinCostarBean;
import com.tsingteng.cosfun.bean.OpusBean;
import com.tsingteng.cosfun.bean.RecommenResp;
import com.tsingteng.cosfun.bean.SearchResp;
import com.tsingteng.cosfun.bean.VidePersonBean;
import com.tsingteng.cosfun.callback.RxObserver;

import java.util.List;

import retrofit2.Callback;

public interface IOpusModel {

    /**
     * 获取首页推荐视频列表
     *
     * @param
     * @param
     * @param timestamp
     */
    void getOpusList(String page_no, String page_size, String timestamp, String sign, RxObserver<HomeBean> callback);

    void getOpusAttentionList(String page_no, String page_size, String deviceId, String c, RxObserver<BaseDataBean<String>> callback);

    void getOpusAttention(String workId, String c, String deviceId, String type, RxObserver<BaseDataBean<String>> callback);

    /**
     * 作品点赞
     *
     * @param
     * @param
     * @param
     */
    void getOpusZan(String workId, String c, String deviceId, String type, RxObserver<CommBackBean> callback);

    /**
     * 评论点赞
     *
     * @param
     * @param
     * @param
     */
    void getCommmZan(String workId, String c, String deviceId, String type, RxObserver<BaseDataBean<String>> callback);

    /**
     * 不感兴趣
     *
     * @param
     * @param
     * @param
     */
    void getLoseInterest(String workId, String timestamp, String type, RxObserver<CommBackBean> callback);

    /**
     * 合演视屏的列表
     *
     * @param video_info_id
     * @param callback
     */
    void getCostarVideoInfo(String video_info_id, RxObserver<JoinCostarBean> callback);

    /**
     * 关注视频列表
     *
     * @param page_no
     * @param page_size
     * @param timestamp
     * @param sign
     * @param callback
     */
    void getFoucsOpusList(String page_no, String page_size, String timestamp, String sign, RxObserver<HomeBean> callback);

    //段子尬评视频列表
    void getXiPuVideoListList(String paragraph_id, String pageNo, String type, RxObserver<HomeBean.DataBean> callback);

    void getFollowNotification(String follow_id, Callback<BaseDataBean<FollowBean>> callback);

    /**
     * @param userId
     * @param c
     * @param showType
     * @param page_no
     * @param page_size
     * @param deviceId
     * @param callback
     */
    void getWorkList(long userId, String c, String showType, String page_no, String page_size, String deviceId, Callback<BaseDataBean<HomeBean.DataBean>> callback);

    //视频评分
    void getGrade(String video_id, long timestamp, int video_time, Callback<BaseDataBean<String>> callback);

    //删除视频
    void getDel(String video_id, Callback<BaseDataBean<String>> callback);
    //活动列表
    void getVList(int id,String sortType,int pageNo,int pageSize,RxObserver<FoundAtBean> callback);
    //手机号是否绑定
    void getCheckBlind(RxObserver<BlindResp> callback);
    //join
    void getAddJoin(long video_id,RxObserver<BlindResp> callback);

    void getVideoInfo(String videoId,RxObserver<OpusBean> callback);
    //去关注
    void getFocusListInfo(RxObserver<RecommenResp> callback);
    //取消关注
    void getNoFollowNotification(String follow_id, RxObserver<FollowBean> callback);
    //审核和推荐
    void postCheckAndRemmond(String video_id,int opreate,RxObserver<String> callback);
}
